package com.neuedu.corejava.ch9;

public class PackClass {
	public static void main(String[] args) {
		//java为8种基本数据类型提供了包装类
		//包装类主要是为了完成基本数据类型间的转换和字符串之间的转换
		//1、布尔值和布尔类型的转换
		boolean b = true;
		String string = ""+b;//把boolean值转换成字符串
		Boolean bool= new Boolean(b);
		string = bool.toString();//从包装类转换字符串
		boolean boo = bool.booleanValue();
		
		boo = Boolean.getBoolean("false");//把字符串转化成boolean
		
		Boolean bool3 = Boolean.valueOf("true");
		boolean bool4 = Boolean.valueOf("true");//把包装类转化成原始数据类型的过程称为拆箱
		
		bool4 = bool3; //把包装类（Boolean类型）的对象直接赋值给原始数据类型（boolean类型）的过程叫自动拆箱
		Boolean b2 = bool4;//把原始数据类型直接赋值给包装类对象的过程叫自动装箱
	    b2 = new Boolean(false);
	    b2 = new Boolean("false");
	    
	    //2、int类型的转换
	    int i= 100;
	    String iString = "100";
	    
	    //把数字或字符串转换成包装类
	    Integer integer = new Integer(i); //装箱
	    integer = Integer.valueOf(i);
	    integer = i; //自动装箱
	    
	    integer = new Integer(iString);  //把数字字符串转换成包装类
	    integer = Integer.valueOf(iString);
	    
	    //把数字字符串转换成数字
	    int ii = Integer.parseInt(iString);
	    ii = integer.intValue();
	    ii = integer; //自动拆箱
	    
	    long l = integer.longValue();//在不同数据类型之间转换
	    short s = integer.shortValue();
	    byte by = integer.byteValue();
	    float f = integer.floatValue();
	    double d = integer.doubleValue();
	    //char c = integer.charValue(); //不包含char类型
	    char c = 'a';
	    Character character = new Character(c);
	    String string2 = character.toString();
	    //string2 = '中' 不能直接赋值
	    string = String.valueOf(c);
	    
	    //使用Integer.parseInt进行数据转换时，可以指定数值的进制：十进制，二进制，八进制，十六进制
//	    Integer.parseInt("0", 10);// returns 0
//	    Integer.parseInt("473", 10);// returns 473
//	    Integer.parseInt("+42", 10) ;//returns 42
//	    Integer.parseInt("-0", 10);// returns 0
//	    Integer.parseInt("-FF", 16);// returns -255
//	    Integer.parseInt("1100110", 2);// returns 102
//	    Integer.parseInt("2147483647", 10);// returns 2147483647
//	    Integer.parseInt("-2147483648", 10) ;//returns -2147483648
//	    Integer.parseInt("2147483648", 10);// throws a NumberFormatException
//	    Integer.parseInt("99", 8) ;//throws a NumberFormatException
//	    Integer.parseInt("Kona", 10);// throws a NumberFormatException
//	    Integer.parseInt("Kona", 27);// returns 411787
	    int k = Integer.parseInt("90", 10);//转换为10进制
	    System.out.println(k);
	    k = Integer.parseInt("90",16); //转换为16进制
	    System.out.println(k);
	    k = Integer.parseInt("70",8); //转换为8进制
	    System.out.println(k);
	    k = Integer.parseInt("10",2); //转换为2进制
	    System.out.println(k);
	    
	    //0123456789abcdefghijklmnopq
	    k = Integer.parseInt("q", 27); //转换为27进制
	    System.out.println(k);	
	    
	    System.out.println("Byte.SIZE:"+Byte.SIZE);
	    System.out.println("Short.SIZE:"+Short.SIZE);
	    System.out.println("Long.SIZE:"+Long.SIZE);
	    System.out.println("Short.SIZE:"+Short.SIZE);
	    System.out.println("Double.SIZE:"+Double.SIZE);
	    System.out.println("Float.SIZE:"+Float.SIZE);
	    System.out.println("Integer.SIZE:"+Integer.SIZE);
	    System.out.println("Character.SIZE:"+Character.SIZE);
	    
	}
}
